package com.nowcoder.面试必刷101;

import java.util.Arrays;

/**
 * @Description:
 * @author： yeswater
 * @create： 2024/6/13
 */

public class BM97 {
	public static void main(String[] args) {
		int[] arr = {1,2,3,4,5,6};
		System.out.println(Arrays.toString(solve(6, 8, arr)));
	}
	
	/**
	 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
	 *
	 * 旋转数组
	 * @param n int整型 数组长度
	 * @param m int整型 右移距离
	 * @param a int整型一维数组 给定数组
	 * @return int整型一维数组
	 */
	static public int[] solve (int n, int m, int[] a) {
		m = m % n; // 细节：记得取模，否则当移动距离大于数组长度会报错
		// write code here
		reverse(0, n-1, a);
		reverse(0, m-1, a);
		reverse(m, n-1, a);
		return a;
	}
	
	/**
	 * [l, r]
	 */
	static public void reverse(int l, int r, int[] a){
		while(l < r){
			int temp = a[l];
			a[l] = a[r];
			a[r] = temp;
			l++;
			r--;
		}
	}
}
